Skip to content

feat: centralized AI context in mcp-local/ for all tools#112

Open
rviannaoliveira wants to merge 5 commits intomainfrom
feature/centralized-ai-context
Open

feat: centralized AI context in mcp-local/ for all tools#112
rviannaoliveira wants to merge 5 commits intomainfrom
feature/centralized-ai-context

Conversation

@rviannaoliveira
Copy link
Copy Markdown
Contributor

@rviannaoliveira rviannaoliveira commented Apr 24, 2026

Summary

  • Creates mcp-local/context/ as a single source of truth for AI context across all tools
  • Each tool gets its own native file with critical rules inline + reference to mcp-local/
  • Skills migrated to mcp-local/skills/ as self-describing Markdown (readable by any model)
  • Community explainer docs with Mermaid diagrams in doc_ai_context.md

Tools covered

Tool Native file
Claude Code CLAUDE.md (updated)
GitHub Copilot .github/copilot-instructions.md (new)
Cursor .cursorrules (new)
Gemini .gemini/context.md (new)
Codex / OpenAI AGENTS.md (new)

Test plan

  • Open repo in GitHub Copilot and verify copilot-instructions.md is loaded
  • Open repo in Cursor and verify .cursorrules is loaded
  • Verify mcp-local/README.md renders Mermaid diagram correctly on GitHub
  • Verify CLAUDE.md references mcp-local/context/ instead of .claude/instructions/

🤖 Generated with Claude Code

rviannaoliveira and others added 3 commits April 24, 2026 09:13
Adds OpenSpec change proposal to create a single source of truth for
AI context across Claude Code, Copilot, Cursor, Gemini and Codex.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Creates a single source of truth for AI context across all tools:
- mcp/context/ with rules, module-graph, platform patterns (android/ios/flutter)
- mcp/context/skills/ with new-component, review-pr, run-build, android-testing, compose-ui
- Native files for Copilot (.github/copilot-instructions.md), Cursor (.cursorrules),
  Gemini (.gemini/context.md), and Codex (AGENTS.md) — each with critical rules
  inline + reference to mcp/context/
- Community explainer docs with Mermaid diagrams in .claude/ and .github/
- Updated CLAUDE.md to reference mcp/context/ instead of .claude/instructions/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Better communicates that this is local AI context (not a running MCP
Server) while still connecting to the MCP concept.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 24, 2026

🦙 MegaLinter status: ⚠️ WARNING

Descriptor Linter Files Fixed Errors Warnings Elapsed time
⚠️ KOTLIN detekt yes 191 no 5.21s
⚠️ MARKDOWN markdown-table-formatter 67 1 0 0.3s
⚠️ YAML prettier 20 1 4 0.92s

See detailed report in MegaLinter reports

You could have the same capabilities but better runtime performances if you use a MegaLinter flavor:

MegaLinter is graciously provided by OX Security

Copy link
Copy Markdown
Contributor Author

@rviannaoliveira rviannaoliveira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review — feat: centralized AI context in mcp-local/

Este PR e de infraestrutura (tooling), nao de componente, entao os criterios de review foram ajustados para o escopo real da mudanca.


O que esta bem

Context files (mcp-local/context/):

  • android.md, ios.md, flutter.md — bem estruturados, cobrem abstracoes, folder structure, build e convencoes de teste. Conteudo preciso e alinhado com o CLAUDE.md.
  • rules.md — extracao limpa das regras arquiteturais, em ingles, acessivel para todos os tools (Copilot, Cursor, Gemini, Codex).
  • skills/new-component.md — excelente: step-by-step com exemplos de codigo e checklist completo incluindo onAction, registro no Manager, testes e docs.
  • skills/review-pr.md — checklist solido e bem categorizado.

generate-tests.yml:

  • Simplificacao do trigger workflow_run -> pull_request[closed] + filtro merged == true e mais direto e elimina a etapa de resolucao de contexto.
  • Uso de base.sha ao inves de origin/main e mais preciso para o diff do PR.

CLAUDE.md:

  • Update minimo e correto — apenas atualiza os paths de .claude/instructions/ para mcp-local/context/.

Problemas encontrados

BLOCKER — caminho absoluto hardcoded em android_kmp/.claude/settings.local.json

O arquivo contem "Read(//Users/rodrigo/rep/CraftD/**)". Este path e especifico da sua maquina — qualquer outro contribuidor que abrir o projeto com Claude tera essa permissao quebrada. O double-slash tambem e suspeito.

Fix: remover essa linha ou substituir por path relativo ao projeto, se a ferramenta suportar.


MEDIO — settings.local.json nao deveria ser commitado

Ambos .claude/settings.local.json e android_kmp/.claude/settings.local.json foram adicionados ao repositorio. O sufixo local indica configuracao especifica do usuario — o Claude Code trata esses arquivos como overrides locais que nao devem ser versionados.

Verifique se .gitignore exclui settings.local.json. Configuracoes globais de permissao do projeto devem ir em settings.json (sem o .local).


MEDIO — generate-tests.yml perde a garantia de build aprovado

O trigger workflow_run aguardava o pr.yml terminar com sucesso antes de rodar. O novo trigger pull_request[closed] dispara imediatamente ao merge, sem garantia de que o build passou.

Na pratica, como o merge normalmente exige PR checks, isso pode ser aceitavel — mas vale avaliar se o workflow de geracao de testes deve realmente rodar mesmo quando o build esta quebrado (ex: merge forcado pelo admin).


BAIXO — numeracao dos steps no generate-tests.yml dessincronizada

Apos remover o step "1. Resolve trigger context", o checkout virou "1. Checkout" corretamente, mas o step seguinte permanece "3. Verifica se ha arquivos .kt modificados" — deveria ser "2.". Comentarios inconsistentes.


BAIXO — openspec/changes/centralized-ai-context/ nao foi arquivado

A change restrict-generate-tests-to-merged-prs foi corretamente arquivada em openspec/changes/archive/. Mas centralized-ai-context/ — que e exatamente o que este PR implementa — ainda esta em openspec/changes/ como change ativa. Deveria ser arquivada junto com este PR para fechar o ciclo.


Resumo

Item Status
Context files (android/ios/flutter/rules) Aprovado
Skills (new-component, review-pr, compose-ui) Aprovado
CLAUDE.md update Aprovado
generate-tests.yml simplification Aprovado com ressalva
Hardcoded path em settings.local.json Blocker
settings.local.json commitado Rever
Step comments dessincronizados Cosmetico
openspec/centralized-ai-context nao arquivado Rever

Copy link
Copy Markdown
Collaborator

@gabrielbmoro gabrielbmoro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deveria ser .claude, .gemini, .github?

Por ser mcp, acredito que podemos ter uma unica especificação para diferentes AIs, se amanha surgir uma nova AI vamos precisar criar .novaAi, ai fica muito palha

- Flatten mcp-local/context/ → mcp-local/ (remove /context/ layer)
- Move platform files into mcp-local/instructions/
- Move architectural rules + conventions into mcp-local/skills/architecture.md
- Move all skills into mcp-local/skills/ (android-gradle-logic, android-testing, compose-ui)
- Create mcp-local/init.md as shared initializer with session token verification
- Slim CLAUDE.md, .gemini/context.md, .github/copilot-instructions.md to identical thin pointers
- Replace scattered AI_CONTEXT.md files with single doc_ai_context.md at root
- Delete .claude/instructions/ and duplicate CraftD-specific skills from .claude/skills/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants